package vip.gadfly.tiktok.open.bean.check;


import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import vip.gadfly.tiktok.open.common.TtOpBaseResult;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class TtOpHisResult extends TtOpBaseResult {


    @JSONField(name = "description")
    @JsonAlias("description")
    @JsonProperty("description")
    @SerializedName("description")
    private String description;

    @JSONField(name = "error_code")
    @JsonAlias("error_code")
    @JsonProperty("error_code")
    @SerializedName("error_code")
    private Integer errorCode;

    @JSONField(name = "records")
    @JsonAlias("records")
    @JsonProperty("records")
    @SerializedName("records")
    private List<Records> records;

    @Data
    public static class Records
    {
        @JSONField(name = "cursor")
        @JsonAlias("cursor")
        @JsonProperty("cursor")
        @SerializedName("cursor")
        private String cursor;

        @JSONField(name = "verify_id")
        @JsonAlias("verify_id")
        @JsonProperty("verify_id")
        @SerializedName("verify_id")
        private String verifyId;

        @JSONField(name = "certificate_id")
        @JsonAlias("certificate_id")
        @JsonProperty("certificate_id")
        @SerializedName("certificate_id")
        private String certificateId;

        @JSONField(name = "verify_time")
        @JsonAlias("verify_time")
        @JsonProperty("verify_time")
        @SerializedName("verify_time")
        private Integer verifyTime;

        @JSONField(name = "can_cancel")
        @JsonAlias("can_cancel")
        @JsonProperty("can_cancel")
        @SerializedName("can_cancel")
        private Boolean canCancel;

        @JSONField(name = "verify_type")
        @JsonAlias("verify_type")
        @JsonProperty("verify_type")
        @SerializedName("verify_type")
        private Integer verifyType;

        @JSONField(name = "status")
        @JsonAlias("status")
        @JsonProperty("status")
        @SerializedName("status")
        private Integer status;

        @JSONField(name = "cancel_time")
        @JsonAlias("cancel_time")
        @JsonProperty("cancel_time")
        @SerializedName("cancel_time")
        private Integer cancelTime;

        @JSONField(name = "amount")
        @JsonAlias("amount")
        @JsonProperty("amount")
        @SerializedName("amount")
        private Amount amount;

        @JSONField(name = "sku")
        @JsonAlias("sku")
        @JsonProperty("sku")
        @SerializedName("sku")
        private Sku sku;
    }

    @Data
    public static class Amount
    {
        @JSONField(name = "original_amount")
        @JsonAlias("original_amount")
        @JsonProperty("original_amount")
        @SerializedName("original_amount")
        private int originalAmount;

        @JSONField(name = "pay_amount")
        @JsonAlias("pay_amount")
        @JsonProperty("pay_amount")
        @SerializedName("pay_amount")
        private int payAmount;

        @JSONField(name = "merchant_ticket_amount")
        @JsonAlias("merchant_ticket_amount")
        @JsonProperty("merchant_ticket_amount")
        @SerializedName("merchant_ticket_amount")
        private int merchantTicketAmount;
    }

    @Data
    public static class Sku
    {
        @JSONField(name = "sku_id")
        @JsonAlias("sku_id")
        @JsonProperty("sku_id")
        @SerializedName("sku_id")
        private String skuId;

        @JSONField(name = "title")
        @JsonAlias("title")
        @JsonProperty("title")
        @SerializedName("title")
        private String title;

        @JSONField(name = "account_id")
        @JsonAlias("account_id")
        @JsonProperty("account_id")
        @SerializedName("account_id")
        private String accountId;

        @JSONField(name = "market_price")
        @JsonAlias("market_price")
        @JsonProperty("market_price")
        @SerializedName("market_price")
        private int marketPrice;

        @JSONField(name = "sold_start_time")
        @JsonAlias("sold_start_time")
        @JsonProperty("verify_results")
        @SerializedName("sold_start_time")
        private int soldStartTime;

        @JSONField(name = "third_sku_id")
        @JsonAlias("third_sku_id")
        @JsonProperty("third_sku_id")
        @SerializedName("third_sku_id")
        private String thirdSkuId;

    }




}
